<?php
namespace app\api\controller;

use app\api\exception\BaseException;
use app\common\controller\Api;

/**
 * @title 文件上传
 * @description 上传文件，成功返回文件地址
 * @group 公共分组
 * @header name:accesstoken require:1 default:MTU2MjEzNzUzNF9kM2M0YzdlYTkzYTY1Y2JmY2IxZGQxZTYxOTVmYTgxZQ== desc:AccessToken
 */
class Upload extends Api
{
    protected $needAccessToken=true;
    protected $needToken=false;

    /**
     * @title 普通上传
     * @description  上传文件到服务器，成功返回文件地址,上传方式multipart/form-data
     * @author fzf
     * @url /upload
     * @method POST
     * @param name:file type:string require:1 default: other: desc:文件
     * @param name:filename type:int require:0 default: other: desc:文件名，如果不填，表示由服务器随机生成
     *
     *
     */
    function index(){
         $file=$this->request->file('file');
         $filename=$this->request->param('filename',true);
         $maxsize=config('upload_max_size');

         if($file){
             $path=ROOT_PATH.'public'.DS.'uploads';
             if($maxsize){
                 $info=$file->validate(['size'=>$maxsize])->move($path,$filename);
             }else{
                 $info=$file->move($path,$filename);

             }

             if($info){
                 $ret=[
                     'name'=>'uploads'.DS.$info->getSaveName(),
                     'size'=>$info->getSize(),
                     'mime'=>$info->getMime()
                 ];

                 return $this->success('success',$ret);
             }

             return $this->error('error',$file->getError());

         }

         throw new BaseException('没有获取要上传的文件');


    }


    function oss(){

    }
}
